HashTable的特点（以Scala为例）

1.底层实现：HashTable是Scala中可变集合（如`mutable.HashMap`、`mutable.HashSet`）的底层数据结构，提供基于哈希表的存储机制。
2.哈希冲突处理：通常使用链地址法（每个桶存储链表），通过哈希函数计算索引位置。
3.可变性：直接支持动态扩容，当元素数量超过阈值时，自动调整桶的数量以保持性能。
4.性能：
   平均时间复杂度：插入、删除、查找操作均为O(1)（假设哈希函数良好）。
   最坏情况（如哈希冲突严重）：时间复杂度退化为O(n)。
5.无序性：不保证元素的遍历顺序，顺序可能随插入或扩容变化。
6.扩展性：作为通用底层结构，支持实现多种数据结构（如哈希集合、哈希映射）。

HashTable vs HashMap（以Scala可变集合为例）

| 特性       | HashTable                            | HashMap                              |
|----------------|------------------------------------------|------------------------------------------|
| 定位       | 底层实现类，不直接暴露给用户             | 高层数据结构，直接提供键值对操作接口     |
| 功能       | 提供基础的哈希存储逻辑                   | 基于HashTable实现，封装键值对的映射逻辑  |
| 使用场景   | 用于构建其他哈希结构（如HashSet、HashMap）| 直接用于需要键值对存储的场景             |
| 接口       | 提供低级方法（如`findEntry`）            | 提供高级方法（如`get`、`put`、`remove`） |

关键区别：  
HashTable是Scala中可变哈希结构的底层实现，而HashMap是基于HashTable构建的键值对集合，提供更友好的API。


TreeMap vs HashMap（以Scala集合为例）

| 特性          | TreeMap                              | HashMap                              |
|-------------------|------------------------------------------|------------------------------------------|
| 底层结构      | 红黑树（有序结构）                       | 哈希表（无序结构）                       |
| 排序          | 按键的自然顺序或自定义比较器排序         | 无固定顺序，依赖哈希函数                 |
| 时间复杂度    | 插入、删除、查找均为O(log n)             | 平均O(1)，最坏O(n)（哈希冲突严重时）     |
| 键的要求      | 键需实现`Ordered`或提供`Comparator`      | 键需正确实现`hashCode`和`equals`         |
| 内存占用      | 每个节点存储左右子节点指针，额外空间较多 | 桶数组+链表/树结构，空间依赖负载因子     |
| 线程安全      | 不可变版本线程安全，可变版本需外部同步   | 同左                                     |
| 典型应用场景  | 需要范围查询或有序遍历的场景             | 需要快速随机访问，无需顺序               |

关键区别：  
TreeMap保证元素有序，适合需要排序或范围查询的场景；  
HashMap提供更快的随机访问，适合对顺序无要求的场景。


总结
1.HashTable是Scala中可变哈希结构的底层实现，支持动态扩容，但需通过高层类（如`HashMap`）使用。  
2.HashMap vs HashTable：HashMap是面向用户的键值对集合，基于HashTable实现，提供更简洁的API。  
3.TreeMap vs HashMap：TreeMap通过红黑树保证有序性，适合排序需求；HashMap通过哈希表提供高效随机访问。  

选择建议：
需要快速查找且不关心顺序 → HashMap  
需要有序遍历或范围查询 → TreeMap  
直接操作键值对 → HashMap  
自定义底层哈希逻辑 → 研究HashTable（但通常不需要直接使用）。